/******************************************************
 * Cours: LOG121
 * Session: A2012
 * Groupe: 01 Projet: Laboratoire #2
 * Étudiant(e)s: Guillaume Boulay
 *               Raphael Faucher
 * Professeur et chargé de labo : Patrice Boucher
 * Nom du fichier: TestDiceList.java
 * Date crée: 2012-11-19
 ******************************************************* 
 * Historique des modifications
 ******************************************************* 
 * 2012-11-19 Version initiale (Guillaume Boulay)
 *******************************************************/
import java.util.Iterator;
import junit.framework.*;

public class TestDiceList extends TestCase
{
    /**
     * S'assure que DiceList.rollDices() roule bel et bien tous les dés.
     */
    public void testDiceListRollsDices()
    {
        int n = 10;
        DiceList dices = new DiceList();
        int values[];
        
        /* Crée n dé de i. */
        for (int i = 2; i < n + 2; i++)
            dices.addDice(new Dice(i));
       
        /* Roule tous les dés 100 fois et regarde si les valeurs sont 
         * possibles. */
        for (int i = 0; i < 100; i++) {
            values = dices.rollDices();
         
            for (int j = 0; j < n; j++)
                assertTrue(values[j] <= j + 2);
        }
    }
    
    /**
     * S'assure que DiceList.addDice fonctionne tout en testant 
     * DiceList.createIterator().
     */
    public void testDiceListAddDices()
    {
        int n = 3;
        int nbDice = 0;
        DiceList dices = new DiceList();
        
        for (int i = 0; i < n; i++)
            dices.addDice(new Dice(6));
        
        Iterator<Dice> diceIterator = dices.createIterator();
        
        while (diceIterator.hasNext()) {
            diceIterator.next();
            nbDice++;
        }
        
        assertTrue(nbDice == n);
    }
    
}
